package com.catsic.core.entity;
import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;

import com.catsic.base.tree.TreeImpl;
/**
 * 授权区域：需要授权的区域
 * 
 * 1、该功能对应的展示区域无需授权，对所有用户一致，则行为类型（按钮）可直接写在页面上
 *
 * 2、该功能对应的展示区域需要授权，不同用户展示不同区域，且每个区域对于不同的用户，行为类型（按钮）也不同，则需要使用js生成行为类型（按钮）
 *
 * 3、同一区域对应的行为类型应一次性从数据库查询出来，禁止每个行为类型查询一次数据库
 *
 * 4、按照行为类型显示的区域，对功能进行区域划分，行为类型--显示区域--具体功能
 */
@Entity
@Table(name="S_AUTHAREA")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AuthArea extends TreeImpl<AuthArea>  implements Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -7954982517642164512L;
	
	/**
	 * resource:资源
	 */
	@ManyToOne(optional=false,fetch=FetchType.EAGER)
	@JoinColumn(name="RESOURCECODE",referencedColumnName = "CODE")
	private Menu resource;

	public Menu getResource() {
		return resource;
	}

	public void setResource(Menu resource) {
		this.resource = resource;
	}
}
